import { getCurrentInstance } from 'vue'
import type { ComponentInternalInstance } from 'vue'

export default function useCurrentInstance() {
  if (!getCurrentInstance()) {
    throw new Error('useCurrentInstance() can only be used inside setup() or functional components!')
  }
  const { appContext } = getCurrentInstance() as ComponentInternalInstance
  const proxy = appContext.config.globalProperties
  return {
    proxy
  }
}
